1. Technical Field
This invention relates generally to a computer hardware and software architecture which supports interactive multi-player computer games. More particularly, the invention provides a scalable system which efficiently distributes computer program components constituting a game across multiple computers.
2. Related Information
Interactive multi-player computer games such as a DOOM game, a QUAKE game, a DUKE NUKEM game, and others are well known. (DOOM and QUAKE are registered trademarks of Id Software, Inc., and DUKE NUKEM is a trademark of Apogee Software, Ltd.) In such games, players can navigate through various "rooms" requiring player interaction in the form of uncovering clues, answering questions, and making selections. In certain versions of these games, each player is provided with a dedicated personal computer which interacts with a central computer over the Internet or other communications medium. New players can enter a game already in progress, while others can exit at their choosing.
As one example, a game might provide a "submarine" room which can hold a limited number of people at a time, wherein each player controls certain activities in the room. Based on the skills of each player, the submarine can be made to move toward various destinations and, upon successful arrival at a particular location, one or more players can move from the submarine into a different room. The players can play the game from different geographic locations and yet, because of coordination in a central computer program, each player is made aware of the actions of the other players. When a new player attempts to enter a room which has reached its capacity limit, a new copy of the room can be created to allow additional players to participate.
FIG. 1 shows a conventional arrangement of hardware and software components for implementing an interactive game as described above. Each of three game players (PLAYER #1, PLAYER #2, and PLAYER #3) is provided with a corresponding computer 101, 102 and 103, each of which is coupled to Internet service provider such as an AMERICA ONLINE service provider or a COMPUSERVE service provider through respective servers 104 and 105. (AMERICA ONLINE and COMPUSERVE are registered trademarks of America Online, Inc., and Compuserve Inc., respectively.) Player actions and displayable information can be transmitted over the Internet 106 to a game server 107 which coordinates the game. While the Internet 106 is depicted as a bus in FIG. 1 for the purposes of discussion, it will be appreciated that the Internet actually comprises a collection of interconnected computer networks.
Typically, each player's computer executes a client game component (101a through 103a) which communicates with a server game component 107a executing on game server 107 to implement the game. Each client game component such as element 101a translates player actions into game commands which are transmitted to server game component 107a, which in turn changes various aspects of the game and returns information to each client game component which displays the updated game information to the player.
Several problems exist with the conventional arrangement depicted in FIG. 1. For one, it is not uncommon for a very large number of game players (hundreds or thousands) to simultaneously play one game. When a large number of players participate in a game, game server 107 may become bogged down, thus slowing down the game for all players. Moreover, if a hardware or software problem develops in game server 107, the disruption caused by stopping the game can inconvenience a very large number of players. Thus, the conventional multi-player game architecture shown in FIG. 1 is not well suited for a large number of players. Due to the increasing popularity of interactive computer games, this problem has become more widespread. Accordingly, a need exists to provide a more efficient and reliable interactive computer game architecture.